Apache Tika ডকুমেন্ট থেকে টেক্সট এক্সট্রাকশন (Text Extraction) করার পর প্রক্রিয়া করা টেক্সটের উপর বিভিন্ন NLP টেকনিক (Natural Language Processing Techniques) প্রয়োগ করা যায়। এর মধ্যে বিশেষভাবে গুরুত্বপূর্ণ দুটি টেকনিক হলো:
- টোকেনাইজেশন (Tokenization)
- নেইমড এনটিটি রিকগনিশন (NER - Named Entity Recognition)
১. টেক্সট এক্সট্রাকশন
প্রথমে Apache Tika ব্যবহার করে ফাইল থেকে টেক্সট বের করা হয়। নিচে একটি উদাহরণ দেওয়া হলো:
উদাহরণ: টেক্সট এক্সট্রাকশন
import org.apache.tika.Tika;
import java.io.File;
public class TikaTextExtraction {
public static void main(String[] args) throws Exception {
// Tika ইনস্ট্যান্স তৈরি
Tika tika = new Tika();
// ফাইল থেকে টেক্সট এক্সট্রাকশন
String content = tika.parseToString(new File("example.pdf"));
// টেক্সট প্রিন্ট করা
System.out.println("Extracted Content: ");
System.out.println(content);
}
}
Output:
Extracted Content:
This is a sample document about Apache Tika and NLP techniques.
John Doe works at XYZ Corporation in New York City.
২. টোকেনাইজেশন (Tokenization)
টোকেনাইজেশন হলো একটি টেক্সটকে ছোট ছোট অংশ বা টোকেন (Tokens) এ ভাগ করা। প্রতিটি শব্দ, সংখ্যা বা চিহ্নকে একটি টোকেন হিসেবে গণ্য করা হয়।
উদাহরণ: টোকেনাইজেশন Java ব্যবহার করে
import java.util.StringTokenizer;
public class TokenizationExample {
public static void main(String[] args) {
String text = "John Doe works at XYZ Corporation in New York City.";
// StringTokenizer দিয়ে টোকেনাইজেশন
StringTokenizer tokenizer = new StringTokenizer(text);
System.out.println("Tokens: ");
while (tokenizer.hasMoreTokens()) {
System.out.println(tokenizer.nextToken());
}
}
}
Output:
Tokens:
John
Doe
works
at
XYZ
Corporation
in
New
York
City
৩. নেইমড এনটিটি রিকগনিশন (NER)
Named Entity Recognition (NER) একটি NLP টেকনিক, যা টেক্সটের মধ্যে থাকা নাম, স্থান, প্রতিষ্ঠান, ইত্যাদি নেইমড এনটিটি সনাক্ত করে।
NER প্রয়োগ করার জন্য Apache OpenNLP বা Stanford NLP লাইব্রেরি ব্যবহার করা যেতে পারে।
উদাহরণ: OpenNLP ব্যবহার করে NER
প্রথমে OpenNLP লাইব্রেরি ডিপেন্ডেন্সি যুক্ত করতে হবে:
<dependency>
<groupId>org.apache.opennlp</groupId>
<artifactId>opennlp-tools</artifactId>
<version>1.9.4</version>
</dependency>
NER কোড উদাহরণ
import opennlp.tools.namefind.NameFinderME;
import opennlp.tools.namefind.TokenNameFinderModel;
import opennlp.tools.util.Span;
import opennlp.tools.tokenize.SimpleTokenizer;
import java.io.FileInputStream;
public class NamedEntityRecognitionExample {
public static void main(String[] args) throws Exception {
String text = "John Doe works at XYZ Corporation in New York City.";
// টোকেনাইজেশন
SimpleTokenizer tokenizer = SimpleTokenizer.INSTANCE;
String[] tokens = tokenizer.tokenize(text);
// NER মডেল লোড করা
TokenNameFinderModel model = new TokenNameFinderModel(
new FileInputStream("en-ner-person.bin"));
NameFinderME nameFinder = new NameFinderME(model);
// NER সনাক্তকরণ
Span[] spans = nameFinder.find(tokens);
System.out.println("Named Entities: ");
for (Span span : spans) {
System.out.println("Entity: " + tokens[span.getStart()] + " " + tokens[span.getStart() + 1]);
}
}
}
Output:
Named Entities:
Entity: John Doe
সারাংশ
- Apache Tika দিয়ে ডকুমেন্ট থেকে টেক্সট এক্সট্রাক্ট করার পর সেই টেক্সটের উপর বিভিন্ন NLP টেকনিক প্রয়োগ করা যায়।
- টোকেনাইজেশন শব্দগুলোকে আলাদা করে টোকেন তৈরি করে।
- Named Entity Recognition (NER) টেক্সট থেকে নাম, স্থান এবং প্রতিষ্ঠান সনাক্ত করতে সাহায্য করে।
এটি ডকুমেন্ট প্রসেসিং এবং ডেটা বিশ্লেষণকে আরও কার্যকর ও প্রায়োগিক করে তোলে।